package com.sls.game.base.module;

import com.sls.core.socket.Head;
import com.sls.game.pojo.GoodsManageInfo;
import com.sls.game.pojo.GoodsOrderInfo;
import com.sls.game.pojo.GoodsSupplyManageInfo;
import com.sls.game.pojo.SLSHttpInterfaceInfo;

/**
 * @description 交易
 * @author JLM
 * @date 2013-06-20
 * */
public interface BaseDeal {

	/***
	 * 供货执行方法，负责供货，并完成一次对订单信息的补充更新。如上游返回信息
	 * 
	 * @description 交易处理方法，只负责供货，并完成一次对订单信息的补充更新。
	 * @param requestInfo
	 *            用户上传信息
	 * @param orderInfo
	 *            :orderinfo必填参数:mechantIP 工号,goodsCostPrice 商品进价,supplyName
	 *            （供应商名称）,suppliersId （供应商信息）,originalGoodsId
	 *            原始商品信息（上游商品）,orderId(订单号),orderTime（下单时间）；
	 * @param head
	 * @param goodsinfo
	 *            商品信息
	 * @return 返回 GoodsOrderInfo ，根据不同的Status进行判断结果
	 * @throw
	 **/
	public GoodsOrderInfo insertDealTrade(SLSHttpInterfaceInfo requestInfo,
			GoodsOrderInfo orderInfo, Head head, GoodsSupplyManageInfo goodsinfo)
			throws Exception;

	/***
	 * 获取商品详细信息-供货时给下游做商品 查询
	 * 
	 * 
	 * */
	public SLSHttpInterfaceInfo getGoodsDetail(
			SLSHttpInterfaceInfo sLSHttpInterfaceInfo, String originalGoodsId,
			Head head);

	/**
	 * 添加供应联系
	 * */
	public void addGoodsSupplyRelation(GoodsSupplyManageInfo supplyinfo,
			GoodsSupplyManageInfo beforeaddInfo);

	/**
	 * 根据上游商品号获取上游商品价格信息
	 * */
	public GoodsSupplyManageInfo querySupplyprice(String originalGoodsId);

	/**
	 * 从上游商品信息内获取商品管理信息
	 * */
	public GoodsManageInfo getProductFromProduct(String originalGoodsId,
			GoodsManageInfo goodsManageInfo1, Head head);
}
